Transaction tracking technologies focus on tracking composite applications across multiple technologies, protocols, domains (middleware stacks) and operating systems. Tracking is often achieved by instrumenting targeted software with tracking agents which generate tracking events at strategic points in the application flow. Collected tracking events can be analyzed to determine application metrics and topology.
One of the challenges for transaction tracking is topology building. Making the necessary associations between requests from an application in one domain with the corresponding requests in the adjacent domain can be difficult. For example, a first transaction process running on an operating system may request a service from a second process, such as a queue manager. Transaction tracking needs be able to match the request from the first transaction process with the response from the second process in order to track the interaction between the two processes. Traditional transaction tracking technologies generally employ a correlator to make the association between corresponding inter-domain transaction interactions. A correlator may be passed from the source domain to the target domain (static correlator) or may be generated independently on each domain using common but unique data (dynamic correlator). In either case, matching correlators are used to associate transaction interactions. A problem exists when it is undesirable or not possible to pass a static correlator between domains and when common unique data is not available to generate a dynamic correlator.